#ifndef NODE_H
#define NODE_H
#pragma once

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <map>
#include "tinyxml.h"
#include <stack>
#include <sstream>
#include <cstdlib>
#include "tinystr.h"
#include <GL\glui.h>
#include <fstream>
#include "RGBpixmap.h"


using namespace std;

typedef struct {
	string prespID;
	float _near;
	float _far;
	float angle;
	float from[3];
	float to[3];
} perspective;

typedef struct {
	string orthoID;
	float _near;
	float _far;
	float left;
	float right;
	float top;
	float bottom;
}ortho;


typedef struct {
	int doublesided;
	int local;
	float ambient[4];
	float background[4];
}illumination;

typedef struct {
	string spotID;
	int enable;
	float angle;
	float exponent;
	float location[3];
	float target[3];
	float ambient[4];
	float diffuse[4];
	float specular[4];
	float direction[4];
}spot;

typedef struct {
	string omniID;
	int enable;
	float location[4];
	float ambient[4];
	float diffuse[4];
	float specular[4];
}omni;

typedef struct {
	string materialID;
	float emission[4];
	float specular[4];
	float diffuse[4];
	float ambient[4];
	float shininess;
}material;

typedef struct {
	string textureID;
	string file;
	float length_s;
	float length_t;
	int pixmapID;
}texture;

#endif